// Loesung_von_Aufgabe_2.1.4_2_Farbwechsel

// gelber Punkt
float x1 = 0;
int y1 = 120;
float v1 = 20;

// violetter Punkt
float x2 = 600;
int y2 = 80;
float a = 5;

// Zeit
float t;

void setup()
{
  size(600, 200);
  frameRate(60);
}

void draw()
{
  background(200);

  t = t + 1.0/frameRate;

  if (x2 >= x1)
  {
    // gelber Punkt
    stroke(255, 255, 0);
    strokeWeight(20);
    point(x1, y1);
    x1 = v1 * t;

    // violetter Punkt
    stroke(255, 0, 255);
    strokeWeight(20);
    point(x2, y2);
    x2 = 600 - 0.5 * a * t * t;
  }

  if (x2 <= x1)
  {
    // Gelber Punkt wird zum violetten Punkt
    stroke(255, 0, 255);
    strokeWeight(20);
    point(x1, y1);
    x1 = v1 * t;

    // Violetter Punkt wird zum gelben Punkt
    stroke(255, 255, 0);
    strokeWeight(20);
    point(x2, y2);
    x2 = 600 - 0.5 * a * t * t;
  }

  println(x1, x2, t);
}